[c]若有以下定义,且0<=i<6,则正确的赋值语句是?

来源:百度知道 编辑:UC知道 时间:2024/05/16 06:06:02
int s[4][6],t[6][4],(*p)[6];
A.p=t B.p=s C.p=s[i] D.p=t[i]
帮我解释一下 谢谢

C
s[4][6],t[6][4]都是int型的数组,(*p)[6]是int 型指针数组,一共有6个指针。
答案A,B只能指向数组的首元素,导致在循环是进入死循环;C是把指针数组中的六个指针依次指向数组t[6][4]的各行的首元素 D错的狗屁不沾

C

s 和 t 都是二维数组
(*p)[6]相当与一个一维数组
C的答案的意思就是说把s的第i行的首地址给地址p

c

简单的说一个指针和数组差不多,唯一的不同就是动态和静态的区别。
你可以这样简单的看一个指针就是一个一维数组。
所以很明显c是正确的。
因为*p相当于一个一维数组
而二维数组又是本身就是一维数组的一维数组
所以当*p表示为一维数组的时候,那么(*p)[6]就是二维数组了
所以选项中只有c正确

******
s:
******
******
******
******
t:
****
****
****
****
****
****
*p[0]=***//任意长度
*p[1]=***//任意长度
.
.
.
*p[5]=***//任意长度

所以,应该选A